package fisio.control;

import java.io.IOException;
import java.util.Vector;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

import fisio.global.Const;
import fisio.model.Fisioterapeuta;
import fisio.service.ServicoFisioterapeuta;

public class FisioterapeutaServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {
		
		String op = request.getParameter("op");
		
		if(op != null) {
			
			if(op.equals("listar")) {
				
				Fisioterapeuta usuario = (Fisioterapeuta)request.getSession().getAttribute("usuario");
				
				Vector<Fisioterapeuta> temp = ServicoFisioterapeuta.getFisioterapeutasParcialExceto(usuario.getId());
				JSONArray array = new JSONArray();
				
				for(int i = 0; i < temp.size(); i++)
					array.add(temp.get(i).toJSON());
				
				request.getSession().setAttribute("tabAtiva", "#tabFisioterapeutas");
				response.setContentType("application/json");
				response.getWriter().print(array);	
				
			} else if(op.equals("editar")) {
				
				String id = request.getParameter("id");
				Fisioterapeuta f = ServicoFisioterapeuta.getFisioterapeuta(Integer.parseInt(id));
				
				request.setAttribute("fisioterapeuta", f);
				request.getRequestDispatcher(Const.JSP_CAD_FISIOTERAPEUTA).forward(request, response);
				
			} else if(op.equals("exibir")) {
				
				String id = request.getParameter("id");
				Fisioterapeuta f = ServicoFisioterapeuta.getFisioterapeuta(Integer.parseInt(id));
				
				request.getSession().setAttribute("fisioTemp", f);
				
			} else
				response.sendRedirect(Const.CONTEXT);
			
		} else
			response.sendRedirect(Const.CONTEXT);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {
		
		String op = request.getParameter("op");
		
		if(op != null) {
			
			String cpf = request.getParameter("cpf");
			String crefito = request.getParameter("crefito");
			String nome = request.getParameter("nome");
			String senha = request.getParameter("pass");
			String email = request.getParameter("email");
			String celular = request.getParameter("celular");
			String formacao = request.getParameter("formacao");
			String foto = request.getParameter("foto");
			boolean perfilAdmin = Boolean.parseBoolean(request.getParameter("perfilAdmin"));
			
			if(op.equals("deletar")) {
				
				String id = request.getParameter("id");
				ServicoFisioterapeuta.deleteFisioterapeuta(Integer.parseInt(id));
			
			} else if(op.equals("editar")) {
				
				int id = Integer.parseInt(request.getParameter("id"));
				ServicoFisioterapeuta.updateFisioterapeuta(id, new Fisioterapeuta(cpf, crefito, nome, senha, email, celular, formacao, foto, perfilAdmin));
				response.sendRedirect(Const.PAGE_HOME_LOGADO);
				
			} else if(op.equals("editarConta")) {
				
				Fisioterapeuta usuario = (Fisioterapeuta)request.getSession().getAttribute("usuario"); 
				ServicoFisioterapeuta.updateUsuario(usuario.getId(), new Fisioterapeuta(cpf, crefito, nome, email, celular, formacao, foto));
				
				Fisioterapeuta novoUsuario = ServicoFisioterapeuta.getFisioterapeuta(usuario.getId());
				request.getSession().setAttribute("usuario", novoUsuario);
				response.sendRedirect(Const.PAGE_MINHA_CONTA);
				
			} else if(op.equals("cadastrar")) {
				
				ServicoFisioterapeuta.insertFisioterapeuta(new Fisioterapeuta(cpf, crefito, nome, senha, email, celular, formacao, foto, perfilAdmin));
				response.sendRedirect(Const.PAGE_HOME_LOGADO);
				
			} else
				response.sendRedirect(Const.CONTEXT);
				
		} else
			response.sendRedirect(Const.CONTEXT);
	}
}